#第一题
# import requests
# import json
# ip = input("请输入ip地址：")
# url = f"http://ip-api.com/json/{ip}"
# response = requests.get(url)
# data = json.loads(response.text)
# result = data
# print(f"IP地址：{result['query']}")
# print(f"国家：{result['country']}")
# print(f"省份：{result['regionName']}")
# print(f"运营商：{result['isp']}")
# with open("ip_info.txt", "a") as file:
#     file.write(f"{result['query']},{result['country']},{result['regionName']},{result['isp']}\n")

# #第二题
# import subprocess
# import ipaddress
# def check_alive_ips(network):
#     try:  #获取ip地址并判断是否为无效网段
#         ip_network = ipaddress.ip_network(network)
#     except ValueError as e:
#         print(f"无效的网段：{e}")
#         return None
#     alive_ips = []#定义一个空列表接受存活ip
#     for ip in ip_network.hosts():  #遍历ip_network所有ip地址
#         ip_str = str(ip)
#         result = subprocess.run(['ping', '-c', '1', '-w', '1', ip_str], stdout=subprocess.DEVNULL)
#         if result.returncode == 0:  #如果返回状态为0则表示存活
#             alive_ips.append(ip_str) #将存活地址ip添加至列表
#     return alive_ips
# network = input("请输入要检查的网段和子网掩码（例如：192.168.0.0/24）：")
# result = check_alive_ips(network)
# if result is not None:
#     if len(result) > 0:
#         with open("alive_ips.txt", "w") as file:
#             file.write("\n".join(result))
#         print("存活的IP地址已写入到alive_ips.txt文件中")
#     else:
#         print("该网段内没有存活的IP地址")

# #第三题
# nums1 = [7, 2, 9, 0, 0, 0]#定义nums1和nums2还有n和m
# m = 3
# nums2 = [4, 5, 6]
# n = 3
# p1 = m - 1  #p1和p2还有p分别获取nums1，nums2，二者合并后nums1的长度
# p2 = n - 1
# p = m + n - 1
# while p1 >= 0 and p2 >= 0:  #当两个数列长度都大于0时开始循环，都从最后一个往前开始取
#     if nums1[p1] >= nums2[p2]:#比较两个数列元素值大小，将大的写入合并后的nums1的最后一个元素
#         nums1[p] = nums1[p1]
#         p1 -= 1
#     else:
#         nums1[p] = nums2[p2]
#         p2 -= 1
#     p -= 1     #一次比较完成后再往前看一位，继续进行循环
# while p2 >= 0:  #如果第一次while循环结束，nums2的元素有剩余开启第二次循环
#     nums1[p] = nums2[p2]
#     p2 -= 1
#     p -= 1
# print(nums1)
